package cn.com.api.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import cn.com.api.entity.*;
import cn.com.api.mapper.base.T_shippingMapperBase;
import cn.com.util.*;

//DAO
public interface ApiT_shippingMapper extends T_shippingMapperBase {

	/** 根据订单号查询物流信息 */
	public ApiT_shipping findT_shippingByOrderId(
			@Param("order_id") String order_id);

	/** 查询待分派配送员的任务 */
	public List<ApiT_shipping> searchT_shippingNoAllocate();

	public List<ApiT_shipping> findShoppingByUserId(
			@Param("user_id") String user_id);

	/** 根据订单号，指定配送员 */
	public void updateT_shippingByOrderId(
			@Param("map") Map<String, Object> map);

	/** 获取配送员当日有效订单和订单总金额 **/
	public Map<String, Object> getShipperAccount(String user_id);

	/** 获取配送员配送服务评价 **/
	public Map<String, Object> getShipperShippingRemark(String user_id);

	/** 定时任务 查询当日有效订单 -货已送达 */
	public List<ApiT_shipping> searchTodayFinishTask(
			@Param("nowDate") String nowDate);
	
	/** 定时任务 查询当日有效订单 -货已送达  */
	public List<ApiT_shipping> searchTodayFinishTask2(
			@Param("nowDate") String nowDate);
	
	/** 根据年月日期 查询 数量 u_id *星数量--配送端显示当月配送奖金用 */
	public List<Map<String, Object>> searchShippingRemarkByTimeAndUidAward(
			@Param("date") String date, @Param("u_id") String u_id);

	/** 根据年月日期 查询 数量 u_id *星数量----我的业绩里用 */
	public List<Map<String, Object>> searchShippingRemarkByTimeAndUid(
			@Param("date") String date, @Param("u_id") String u_id);
	
	/** 用户每次登录，查询配送服务未评价的订单列表--货已送达未评价 */
	public List<Map<String,Object>> getNoEvaluateOrdersByUser(@Param("u_id") String u_id);
	/** 根据日期查询当日接单数量 */
	public Integer getShippingCountByConditions(@Param("map") Map<String,Object> map);
	/** 设置已完成订单的配送评价-默认4星评价 */
	public void updateShippingRemarkNoEvaluate();
	
	
	//根据status状态查询订单
	public List<ApiT_shipping> status(@Param("status") int status);
	
	//后台配送员列表
	public List<Member_shipper> m_shipperlistListPage(@Param("page")PageInfo pageInfo);
	
	//多条件查找配送员
	public List<Member_shipper> shipper_list_bytermListPage(@Param("map3") Map<String,Object> conditions,@Param("page")PageInfo pageInfo);
	
	//查询配送中的订单（status=1,2,3,4,5）
	public List<ApiT_shipping> shipping_ing();
	
	//配送订单列表
	public List<Shipping_list> htshippingsListPage(@Param("page")PageInfo pageInfo);
	
	//待派送订单列表
	public List<Shipping_list> htshippingswaitListPage(@Param("page")PageInfo pageInfo);
	
	//多条件查询配送订单
	public List<Shipping_list> htshippingsbytermListPage(@Param("map") Map<String,Object> conditions,@Param("page")PageInfo pageInfo);
	//根据配送员user_id查询配送中的订单（status=1,2,3,4,5）
	public List<ApiT_shipping> shipbyuiding(String user_id);
	//根据配送员user_id查询已送达的订单（status=6）
	public List<ApiT_shipping> shipbyuidend(String user_id);
	//多条件查询待派送订单
	public List<Shipping_list> htshippingwaitbytermListPage(@Param("map2") Map<String,Object> conditions2,@Param("page")PageInfo pageInfo);
	
	//查询配送员时间段之内所有配送订单
	public List<ApiT_shipping> bytime_uid(@Param("u_id") String u_id,@Param("status")String status,@Param("date1")String date1,@Param("date2")String date2);

}
